home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
utils
/
tosfixes
/
hsmoda04.lzh
/
SCC_X.TXT
< prev
next >
Wrap
Text File
|
1994-05-07
|
20KB
|
480 lines
SCC.PRG, ESCC.PRG, ST_ESCC.PRG
------------------------------
(Note for the English reading people: The English version is appended on
the German, look for it!)
Dies sind Treiber für die mit einem SCC oder ESCC (z.B. Z8530, Am85C30,
Z85230) ausgestatteten seriellen Schnittstellen der Ataris und für die
Zusatzhardware ST_ESCC. Sie funktionieren zusammen mit DRVIN.PRG oder
einem gleichwertigen Ersatz. Einführende Bemerkungen finden sich in
1_README.TXT.
Allgemeines
-----------
Als "ESCC" betrachte _ich_ nur den Z85230 und den Am85C230A. Diese
besitzen nebem dem auf 8 Byte vergrößerten EmpfangsFIFO auch einen
mindestens 4 Byte großen SendeFIFO. Ein ESCC beinhaltet alle Funktionen
eines SCC.
Die Konfigurationsmöglichkeiten der einzelnen *SCC*.PRG unterscheiden sich
etwas.
Taktrate und Baudraten
----------------------
Ein SCC kann für die Baudratenerzeugung verschiedene Taktquellen
verwenden. Die meistbenutzte Taktquelle ist sein Systemtakt PCLK. Dieser
Takt PCLK beträgt bei einem normalen (so wie von Atari geliefert) MegaSTE,
TT und Falcon 8MHz (=8000000Hz). Das ist zwar eine schöne Zahl, die aber
zur Erzeugung der hohen Standardbaudraten wenig geeignet ist. Die hohen
Baudraten im MegaSTE/TT/Falcon werden aus anderen Taktquellen erzeugt.
Meine Hardware ST_ESCC wird immer mit 14745600Hz getaktet.
Man kann einen MegaSTE, TT oder Falcon mit einem Quarzoszillator und etwas
Draht auf PCLK=14745600Hz umbauen (Vorschlag von Franz Sirl). Wenn man nur
die 115200Bd und 57600Bd auf MODEM2 haben will, bietet sich ein
einfacherer Umbau nur mit Draht an. (### Nein, ich kann das jetzt hier
nicht beschreiben. Bei Interesse in späteren Versionen.###)
Da also zwei verschiedene Taktraten üblich sind, ist der im Computer
vorhandene PCLK in den Treibern einstellbar.
Bei einem PCLK von 8MHz sind folgende Rsconf-Baudraten möglich:
(neue - alte)
SERIAL2:
115200 - 150
57600 - 134
38400 - 110
MODEM2:
38400 - 110
153600 - 75
76800 - 50
Bei MegaSTE und Falcon (nicht beim TT) sind zusätzlich auf MODEM2:
115200 - 150
57600 - 134
Bei PCLK = 14745600Hz sind bei MODEM2 und SERIAL2 möglich:
neue Rate alte Rate
115200 150
57600 134
38400 110
153600 75
76800 50
Wenn man die GEMDOS-Fcntl TIOC?BAUD benutzt, hat man ohnehin kein Problem,
dort erfährt man, welche Baudraten möglich sind im Klartext als
"Bit pro Sekunde".
ST_ESCC enthält immer einen ESCC. MegaSTE/TT/Falcon enthalten nur einen
ESCC, wenn den jemand extra gewechselt hat. Der Treiber für den SCC läuft
auch mit dem ESCC-Schaltkreis, umgekehrt nicht.
SCC und ESCC
------------
Zur Erinnerung nochmal: Als "ESCC" betrachte _ich_ nur den Z85230 und den
Am85C230A. Bei ST_ESCC wird immer ein ESCC eingesetzt. In
MegaSTE/TT/Falcon befindet sich im Originalzustand nur ein SCC. Zur
Entlastung der CPU und zur Verbesserung der Datensicherheit (geringere
Wahrscheinlichkeit von Zeichenverlusten beim Empfang) kann man einen ESCC
im PLCC-Gehäuse einsetzen. SCC und ESCC sind pinkompatibel genug.
SCC.PRG
-------
Der Treiber für MODEM2 und SERIAL2 des MegaSTE und TT sowie für die
einzige durch Atari herausgeführte RS232-Schnittstelle des Falcon
(beschriftet mit MODEM), wegen ihrer Verwandschaften hier ebenfalls MODEM2
genannt.
Beim MegaSTE und TT wird momentan NICHT zwischen den Alternativen SERIAL2
und LAN umgeschaltet sondern einfach davon ausgegangen, daß SERIAL2
eingestellt ist (ist wohl nach Reset der Fall). Wenn man von Hand das
Soundchipbit auf LAN umschaltet, sollte man für SERIAL2 auf "kein
Handshake" schalten, da ich für die LAN-Schnittstelle noch nichts getan
habe.
Beim Falcon ist die zweite serielle Schnittstelle nicht umschaltbar,
sondern fest auf LAN gelegt (auf dem Gerät als "LAN" beschriftet). Sie
wird von diesem Treiber aber als SERIAL2 betrachtet und müßte "ohne
Handshake" nutzbar sein. Es gilt das Gleiche wie für MegaSTE/TT: Ich habe
mich mit dieser Schnittstelle und speziell deren Handshakeleitungen noch
nicht näher befaßt.
Beim TT (und Falcon, falls man dem einen Beschleuniger mit FastRAM
spendiert hat) darf SCC.PRG _keinesfalls_ ins FastRAM, da es sonst mit zu
schnellen Zugriffen auf den SCC Probleme geben kann. Diese Probleme
könnten sich in Zeichenverlusten, unsinnigem Verhalten oder Bomben äußern.
ESCC.PRG
--------
Siehe SCC.PRG. Dieser Treiber ist nur für die Nutzer, die sich einen
Z85230 oder Am85C230A eingebaut haben. Der SCC-Treiber funktioniert
ebenfalls mit dem ESCC, nutzt die ESCC-Vorteile aber nicht aus. Der
ESCC-Treiber ist für den SCC sehr ungeeignet!
ST_ESCC.PRG
-----------
Der Treiber nur für (ich komm mir langsam wie in einer Dauerwerbesendung
vor) die von mir entwickelte Hardware ST_ESCC, die zwei zusätzliche
schnelle serielle Schnittstellen in ST/STE/MegaST realisiert. 115200Bd
problemlos mit einem 8MHz/68000 unter TOS, das ist doch was.
Die Konfiguration
-----------------
Die Konfiguration erfolgt durch das SETTER.TTP. Zur Bedienung siehe
SETTER.TXT.
PCLK
Hier wird eingestellt, ob der SCC-Takt PCLK 8MHz ("Nein") oder 14745600Hz
("Ja") ist. Bei nicht umgebauten Ataris müssen Sie mit "Nein" antworten.
Bei ST_ESCC.PRG wird die Frage nicht gestellt.
M2TT
Wenn Sie einen nicht umgebauten (also originalen) TT benutzen, antworten
Sie mit "Ja". Dann sind auf MODEM2 leider keine 57600Bd und 115200Bd
verfügbar. Wenn man dan Draht-Umbau gemacht hat, sollte man mit "Nein"
antworten, genau wie die MegaSTE- und Falcon-User. Bei ST_ESCC.PRG wird
diese Frage nicht gestellt. Wenn Sie bei PCLK die 14745600Hz angegeben
haben, ist die Antwort auf diese Frage bedeutungslos.
USE4C
Diese Frage erscheint nur bei ESCC.PRG und ST_ESCC.PRG. Soll ein
Empfangsinterrupt erst nach 4 empfangenen Zeichen erfolgen? Ich nenne
diesen Modus, der erst nach 4 Zeichen einen Interrupt auslöst, 4ZI. 4ZI
entlastet bei "RTS/CTS"- und "ohne"- Handshake die CPU wesentlich. Bei
"XON/XOFF"-Handshake ist er automatisch ausgeschaltet, der Aufwand an
Sonderbehandlungen hätte den Nutzen überstiegen. Neben den Vorteilen
verkürzt 4ZI aber die freie Länge des EmpfangsFIFOs von 8 auf 4 Zeichen.
Nach einer Interruptmeldung des ESCC an die CPU können vor einer Reaktion
der CPU nur noch 4 statt 8 Zeichen verlustfrei empfangen werden.
Normalerweise schaltet man 4ZI an, antwortet also mit "Ja", da 4 freie
Zeichen ausreichen und der Gewinn an CPU-Zeit durch die auf 1/4
reduzierten Empfangsinterrupts wesentlich ist. Wenn man unsaubere
Programme hat, muß man 4ZI wahrscheinlich immer ausschalten, also hier mit
"Nein" antworten. Diese unsauberen Programme äußern sich durch
verschiedene Verzögerungen: im Terminalmode kommen erst dann Zeichen auf
den Bildschirm, wenn es 4 Zeichen sind. Unsaubere Übertragungsprotokolle
hängen einige Zeit (oder ewig) fest, besonders am Anfang oder Ende.
DTRM2:
Das DTR(Data Terminal Ready)-Signal der Schnittstelle MODEM2 wird beim
Start dieses Treibers einmalig auf den hier angegebenen Wert gesetzt. Eine
Aktivierung mit "Ja" entspricht der Arbeitsweise des TOS, eine
Deaktivierung mit "Nein" verhindert das "ungefragte" Abheben eines
entsprechend konfigurierten Modems.
DTRS2:
Wie DTRM2, aber für Schnittstelle SERIAL2.
RBLM2:
Wenn man hiermit nichts anzufangen weiß, einfach 256 einstellen. Hier wird
die Empfangspufferlänge der MODEM2-Schnittstelle in Byte eingestellt. Sie
darf maximal 65534 und minimal 16 betragen. Werte außerhalb dieses
Bereiches werden auf den Standardwert von 256 gesetzt. Die Länge wird auf
eine gerade Zahl abgerundet. Die Wassermarken werden generell auf 1/4 (low
water mark) und 3/4 (high water mark) gesetzt.
TBLM2:
Wie RBLM2, aber diesmal die Sendepufferlänge.
RBLS2:
Wie RBLM2, aber diesmal für Schnittstelle SERIAL2.
TBLS2:
Wie RBLM2, aber diesmal die Senderpufferlänge für Schnittstelle SERIAL2.
Für Programmierer: Der IOREC
----------------------------
Finger weg von der Bestimmung der lesbaren Byteanzahl über den IOREC! Das
geht bei eingeschaltetem 4-Zeichen